/*
在函数调用中是否需要使用指针参数取决于你想要实现的功能。我将给出几种情况以帮助你更好地理解。

1:传递基本数据类型：
如果你只是想在函数内部使用参数的值，而不对参数进行修改，可以直接传递基本数据类型作为实际参数。
这样，函数将接收到实际参数的拷贝，并在函数内部使用这个拷贝。但是在函数内部对形式参数的修改不会影响到实际参数。
示例代码：
*/

// #include <stdio.h>

// void printValue(int num) {
//     printf("Inside function: %d\n", num);
// }

// int main() {
//     int value = 10;
//     printValue(value);  // 传递实际参数的拷贝
//     printf("Outside function: %d\n", value);
//     return 0;
// }


/*
输出结果：
Inside function: 10
Outside function: 10
在上面的例子中，printValue() 函数接收到 value 的拷贝，并在函数内部使用它。但是对 num 的修改不会影响到 value。
*/

/*
需要修改参数的值：
如果你想在函数内部修改参数的值，并希望这些修改能够影响到函数外部的实际参数，那么你需要使用指针参数。
通过传递指针参数，函数可以通过指针来访问和修改实际参数的值。
示例代码：
*/

// #include <stdio.h>

// void increment(int* num) {
//     (*num)++;  // 通过指针修改实际参数的值
// }

// int main() {
//     int value = 10;
//     printf("Before increment: %d\n", value);
//     increment(&value);  // 传递实际参数的地址
//     printf("After increment: %d\n", value);
//     return 0;
// }


/*
输出结果：
Before increment: 10
After increment: 11
 
在上面的例子中，increment() 函数接收到 value 的地址，并通过指针 num 访问和修改实际参数的值。
需要注意的是，使用指针参数时需要确保传递给函数的实际参数是有效的地址，否则可能会导致程序错误。
*/